/*
package org.example.util;

import javax.print.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;

public class Test2 {


    */
/**
     * 查找并返回汉印N31C打印机实例
     *//*

    public static PrintService findHaninN31CPrinter() {
        PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
        return Arrays.stream(services)
                .filter(service -> service.getName().contains("N31C"))
                .findFirst()
                .orElseThrow(() -> new IllegalStateException("汉印N31C打印机未找到"));
    }

    */
/**
     * 执行打印测试页
     *//*

    public static void printTestPage() throws PrintException, IOException {
        PrintService printer = findHaninN31CPrinter();
        DocPrintJob printJob = printer.createPrintJob();

        // 构建打印内容 (使用ESC/POS指令)
        String testContent = buildTestContent();

        try (InputStream is = new ByteArrayInputStream(
                testContent.getBytes(StandardCharsets.ISO_8859_1))) {

            // 设置打印属性
            PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
            attributes.add(new Copies(1));  // 打印份数

            // 创建打印文档
            Doc doc = new SimpleDoc(is, DocFlavor.INPUT_STREAM.AUTOSENSE, null);


            // 执行打印
            printJob.print(doc, attributes);
            System.out.println("测试页已发送到打印机");
        }
    }

    */
/**
     * 构建测试页内容 (包含ESC/POS指令)
     *//*

    private static String buildTestContent() {
        StringBuilder sb = new StringBuilder();

        // 初始化打印机 (ESC @)
        sb.append((char) 0x1B).append("@");

        // 居中打印 (ESC a 1)
        sb.append((char) 0x1B).append("a").append((char) 1);

        // 设置双倍宽高 (ESC ! 56)
        sb.append((char) 0x1B).append("!").append((char) 56);
        sb.append("\n=== 打印机测试 ===\n");

        // 取消倍宽高 (ESC ! 0)
        sb.append((char) 0x1B).append("!").append((char) 0);

        // 左对齐
        sb.append((char) 0x1B).append("a").append((char) 0);

        sb.append("型号: N31C\n");
        sb.append("连接方式: USB\n");
        sb.append("JDK版本: 17\n");
        sb.append("测试时间: ").append(java.time.LocalDateTime.now()).append("\n\n");

        // 打印分隔线
        for (int i = 0; i < 32; i++) {
            sb.append("-");
        }
        sb.append("\n\n");

        // 打印测试二维码
        sb.append((char) 0x1D).append("k").append((char) 4).append("TESTQR").append((char) 0);

        // 切纸 (GS V m)
        sb.append((char) 0x1D).append("V").append((char) 66).append((char) 3);

        return sb.toString();
    }

    public static void main(String[] args) {
        try {
            System.out.println("正在查找汉印N31C打印机...");
            printTestPage();
        } catch (Exception e) {
            System.err.println("打印失败: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
*/
